![]() ハードウェア・プリフェッチ・アドレス及び算術演算値を計算するための二重機能加算器
专利摘要:
二重機能加算器を含むシステムが説明される。一つの実施形態において、該システムは加算器を含む。該加算器は、第1のインストラクションがハードウェア・プリフェッチ・インストラクションである場合に、該第1のインストラクションがハードウェア・プリフェッチのためのアドレスを判定するように構成される。該加算器は、該第1のインストラクションが算術演算インストラクションである場合に、該第1のインストラクションが算術演算からの値を判定するように更に構成される。 公开号:JP2011513858A 申请号:JP2010549718 申请日:2009-02-23 公开日:2011-04-28 发明作者:イングル、アジャイ・エー.;コドレスキュ、ルシアン;プロンケ、エリッチ・ジェイ. 申请人:クゥアルコム・インコーポレイテッドQualcomm Incorporated; IPC主号:G06F9-38
专利说明:
[0001] 本明細書で開示される発明の概念の実施形態は、一般にデータ処理システムの分野に関係する。より詳しくは、本明細書で開示される発明の概念の実施形態は、二重機能加算器(dual function adder)に関係する。] 背景技術 [0002] 幾つかの従来のコンピュータ・システムにおいて、プロセッサにより実行される演算(operations)は、ロード/ストア、ハードウェア・プリフェッチ、及び、算術演算(arithmetic operations)を含む。ロード/ストアは、メモリ(例えば、シンクロナス・ダイナミック・ランダム・アクセスメモリ)からレジスタファイルへ値をロードする又はレジスタファイルのレジスタからメモリへ値をストアする演算である。ハードウェア・プリフェッチは、データが要求される前に用意(ready)されるように、メモリからレジスタファイルにデータをプリ・ロードすることである。オペランドがすでにレジスタファイルにプリ・ロードされているならば、プロセッサはオペランドがロードされるのを待たないので、プリフェッチはメモリ・リードに関連するレイテンシーを低減する。算術演算は、例えば2つのオペランドの間の加算及び減算を含む整数演算である。] [0003] ロード/ストア演算を実行する際に、プロセッサが、ロード/ストア・アドレスを計算することがある。ロード/ストア・アドレスは、そこから値をロードすべきメモリのアドレス、又は、レジスタファイルからの値をそこへストアすべきメモリのアドレスである。ハードウェア・プリフェッチを実行する際に、プロセッサが、ハードウェア・プリフェッチ・アドレスを計算することがある。ハードウェア・プリフェッチ・アドレスは、スレッド実行で使うために要求される前にデータがそこからプリ・ロードされるメモリ・アドレスである。算術演算を実行する際に、プロセッサが、算術演算値を計算することがある。算術演算値は、算術演算(例えば、オペランドAとオペランドBの加算)の結果である。] [0004] 図1の従来技術の概略図は、従来のシステム100を示す。図示されるように、従来のシステム100は、少なくとも3つの加算器(106,112及び114)を含むことがある。1つの加算器は、ロード/ストア・アドレスを計算するためのものであり(アドレス生成加算器106)、第2の加算器は、ハードウェア・プリフェッチ・アドレスを計算するためのものであり(ハードウェア・プリフェッチ加算器112)、第3の加算器は、算術演算値を計算するためのものである(算術論理ユニット{ALU}加算器114)。図1を参照して、アドレス生成加算器106は、ロード/ストア・アドレスの計算において、レジスタファイルからのメモリ・アドレス・オペランド102及び即値オペランド104(例えば、定数)を受けることがある。即値オペランドは、アドレスをリストするオペランドの代わりに、演算のオペランドによりリストされる一定値であることがある。] 図1 [0005] 加算器106は、ロード/ストア・アドレスを生成するために、メモリ・アドレス・オペランド102と即値オペランド104とを合計する。そして、それは、マルチプレクサ108に送られる。ロード/ストア演算が実行される場合には、マルチプレクサ108は、マルチプレクサ110にロード/ストア・アドレスを送る。他方、算術演算が実行されている場合には、マルチプレクサ108は、マルチプレクサ108にロード/ストア・アドレスをフォワードする代わりに、第1のALUオペランド102を、レジスタファイルからALU加算器114にフォワードすることがある。ハードウェア・プリフェッチが、ロード/ストア演算の実行に加えて又はその代わりに実行される場合には、マルチプレクサ108は、ハードウェア・プリフェッチ・アドレスを判定するために、ロード/ストア・アドレスを、アドレス生成加算器106からハードウェア・プリフェッチ加算器112にフォワードすることがある。] [0006] 図1の概略図で説明されるように、ハードウェア・プリフェッチ加算器112は、ポスト・インクリメント・アドレスを判定するように更に構成される。ポスト・インクリメント・アドレスは、前の実行サイクルで使われるメモリ・アドレスに定数を加算した値に等しいアドレスである。例えば、現在の実行サイクルにおける演算の実行後又は実行中に、その演算のオペランドを直接又は間接的に指すアドレスが、ポスト・インクリメント・アドレスをもたらすために、定数によりインクリメントされることがある。ポスト・インクリメント・アドレスは、後続する実行サイクルにおいて処理される演算のオペランドを直接又は間接的に指すことがある。] 図1 [0007] 図1の概略図において、加算器112は、ロード/ストア・アドレスとマルチプレクサ116の出力とを加算するこよによって、ポスト・インクリメント・アドレスを判定する。ポスト・インクリメント・アドレスの計算のとき、マルチプレクサ116は、ポスト・インクリメント定数(pconstant)118を選択する。pconstant 118は、予め定義されてされていても良いし及び/又はハード配線されていてもよいし又はシステム100によりストアされていても良い。加算器112がハードウェア・プリフェッチ・アドレスを判定するとき、マルチプレクサ116は、(そのアドレスでロード/ストア・アドレスをインクリメント又はデクリメントする)ハードウェア・プリフェッチ・デクリメント・アドレス120及びハードウェア・プリフェッチ・インクリメント・アドレス122の間で選択をする。加算器112は、ポスト・インクリメント・アドレス又はハードウェア・プリフェッチ・アドレス124を出力する。それは、現在の実行サイクルでレジスタファイルに、又は、次の実行サイクルでマルチプレクサ110の入力に、送られることがある。次の実行サイクルでマルチプレクサ110に入力されるハードウェア・プリフェッチ・アドレス124は、メモリ・アドレス134の値をプリフェッチするためにデータキャッシュ136にアクセスするのに用いられることがある。それゆえに、マルチプレクサ110は、ロード/ストア演算が実行されているか又はハードウェア・プリフェッチが実行されているかに応じて、現在の実行サイクルのロード/ストア・アドレスと前の実行サイクルのハードウェア・プリフェッチ・アドレスとの間で選択する。] 図1 [0008] 算術演算が計算される場合には、マルチプレクサ108がALU加算器114の入力に第1のALUオペランド102を送るのに加えて、マルチプレクサ126は、算術演算に応じて、レジスタファイルからの第2のALUオペランド128及び即値ALUオペランド130(すなわち、定数)から選択された出力を送る。例えば、算術演算は、レジスタファイルにストアされた2つの値を加算することがある。それゆえに、インストラクションの入力オペランドは、加算される値をストアするレジスタファイルのうちの2つのレジスタを指すことがある。他の例において、1つのオペランドは、レジスタファイルにストアされた値を示し、一方、他のオペランドは、予め定義された定数をリストすることがある。加算器114は、算術演算値132を出力するために、マルチプレクサ126の出力とALU第1のオペランド102とを加算する。] [0009] システム100に関する一つの問題は、3つの加算器が演算を処理することを要求され、それゆえ、回路の面積及びプロセッサの電力消費を増加させることである。] [0010] 一つの実施形態において、二重機能加算器を含むシステムが説明される。一つの実施形態において、該システムは加算器を含む。該加算器は、第1のインストラクションがハードウェア・プリフェッチ・インストラクションである場合に、該第1のインストラクションがハードウェア・プリフェッチのためのアドレスを判定するように構成される。該加算器は、該第1のインストラクションが算術演算インストラクションである場合に、該第1のインストラクションが算術演算からの値を判定するように更に構成される。] [0011] 本明細書で開示される1つ又は複数の実施形態の利点は、プロセッサと省電力のためのシリコン上の減少されたエリアを含んでも良い。] [0012] この例示的な実施形態は、本明細書で開示される発明の概念を制限又は定義するためではなく、その理解を助ける例を提供するために言及される。本開示の他の態様、利点及び特徴は、以下のセクション(図面の簡単な説明、詳細な説明、クレーム)を含む全体の出願のレビューの後、明らかになる。] [0013] これらと本発明の概念の他の特徴、態様及び利点は、以下の詳細な説明が添付図面を参照しながら読まれるとき、より良く理解される。] 図面の簡単な説明 [0014] 図1は、ロード/ストア・アドレス、ハードウェア・プリフェッチ・アドレス及び算術演算値を計算するための従来の回路を説明する従来技術の概略図である。 図2は、ハードウェア・プリフェッチ・アドレス及び算術演算値を計算するように構成される二重機能加算器を含む例示的なシステムを説明する概略図である。 図3は、レジスタファイルにアクセスすることなく、図2中の概略図の二重機能加算器により計算されるポスト・インクリメント・アドレスを使うように構成される例示的なシステムを説明する概略図である。 図4は、ハードウェア・プリフェッチ・アドレス及びロード/ストア値を計算するように構成される二重機能加算器を含む例示的なシステムを説明する概略図である。 図5は、レジスタファイルにアクセスすることなく、図4中の概略図の二重機能加算器により計算されるポスト・インクリメント・アドレスを使うように構成される例示的なシステムを説明する概略図である。 図6は、マルチスレッド・プロセッサのためのインストラクション・パイプラインを説明する図である。 図7は、図2及び3の概略図中に示されるシステムによりハードウェア・プリフェッチ、ロード/ストア又は算術演算を実行するための例示的な方法を説明するフローチャートである。 図8は、図4及び5の概略図中に示されるシステムによりハードウェア・プリフェッチ、ロード/ストア又は算術演算を実行するための例示的な方法を説明するフローチャートである。 図9は、図3及び5の概略図中に示されるシステムによりポスト・インクリメント・アドレスを計算し使用するための例示的な方法を説明するフローチャートである。 図10は、二重機能加算器を含んでもよいデジタル・シグナル・プロセッサを組み込んでいる、例であるポータブル通信デバイスを説明する一般的なダイアグラム(general diagram)である。 図11は、二重機能加算器を含んでもよいデジタル・シグナル・プロセッサを組み込んでいる、例である携帯電話を説明する一般的なダイアグラムである。 図12は、二重機能加算器を含んでもよいデジタル・シグナル・プロセッサを組み込んでいる、例である無線IP電話を説明する一般的なダイアグラムである。 図13は、二重機能加算器を含んでもよいデジタル・シグナル・プロセッサを組み込んでいる、例であるポータブル・デジタル・アシスタントを説明する一般的なダイアグラムである。 図14は、二重機能加算器を含んでもよいデジタル・シグナル・プロセッサを組み込んでいる、例であるオーディオ・ファイル・プレーヤーを説明する一般的なダイアグラムである。] 図1 図10 図11 図12 図13 図14 図2 図3 図4 図5 詳細な説明 [0015] 記述を通して、説明のために、多数の特定の細部が、本明細書で開示される発明の概念の完全な理解を提供するために説明される。しかし、本明細書で開示される発明の概念がこれらの特定の細部の一部なしで実施されることができることは、当業者にとって明らかである。他のインスタンスにおいて、周知の構造及びデバイスは、本明細書で開示される発明の概念の根底にある原則を不明瞭にすることを避けるために、ブロック図の形で示される。] [0016] 本明細書で開示される発明の概念の実施形態は、二重機能加算器に関係する。一つの実施形態において、二重機能加算器は、プロセッサにおいて、システムのために、ハードウェア・プリフェッチのためのハードウェア・プリフェッチ・アドレス及び算術演算の実行からの算術演算値を計算するように構成される。それゆえ、複数の加算器(例えば図1からの加算器112,114)のうちの一つがシステムから取り除かれて、システムのサイズ及び電力消費を減らすことができる。加算器を取り除くために、2つの加算器112及び114への入力は、一つの加算器への入力になるように結合される。一つの実施形態において、二重機能加算器は、2つの従来の加算器のうちの一つと同じタイプの加算器である。] 図1 [0017] ハードウェア・プリフェッチ・アドレス計算及び算術演算値計算について1つの加算器を共有することの利点は、従来のように同一の実行サイクルの間に両方の計算が実行されないということである。例えば、ハードウェア・プリフェッチは、従来は、いかなる算術演算も実行されない実行サイクルで起こる。その結果、加算器は、二重機能加算器による重大な(significant)タイミング・ペナルティーを生じさせることなく、両方のタイプの演算を実行することができる。] [0018] システムから加算器を取り除くことに加えて、一つの実施形態において、システムは、ポスト・インクリメント・アドレスをロードするためにレジスタファイルへのアクセスを要求することなく、現在の実行サイクルにおいて、前の実行サイクルからの、計算されたポスト・インクリメント・アドレス(例えば、図1中の加算器112により計算される)を使用するように構成される。従来は、ポスト・インクリメント・アドレスは、レジスタファイルにストアされ、それから後で取り出される。前の実行サイクルからのポスト・インクリメント・アドレスは、現在の実行サイクルにおいて実行される演算のオペランドを指すことができる。前に計算されたポスト・インクリメント・アドレスをロードするためのレジスタファイルへのアクセスを要求しないようにするために、システムは、データキャッシュ136にアクセスするために現在の実行サイクルで使用するように、前に計算されたポスト・インクリメント・アドレスをマルチプレクサ108(図1)に入力するように構成されるフィードバック・パスを含む。その結果、それが現在の実行サイクルのためにシステムへと戻って入力されるので、前の実行サイクルからのポスト・インクリメント・アドレスが利用できる。] 図1 [0019] レジスタファイルにアクセスすることなくポスト・インクリメント・アドレスを使用することの利点は、プロセッサがポスト・インクリメント・アドレスのためにレジスタファイルをリードすることで実行を停止させるであろう時間が節約されるということである。したがって、システムを含むプロセッサの速度は増加される。] [0020] 二重機能加算器の例示的な実施形態 図2−5中の概略図は、二重機能加算器を含む回路の例示的な実施形態を示す。図2の概略図は、ハードウェア・プリフェッチ・アドレス226を計算するように及び算術演算値226を計算するように構成される二重機能加算器224を含む例示的なシステム200を示す。一つの実施形態において、システム200は、プロセッサの実行ユニット及び/又はロード/ストア・ユニット中にある。図3の概略図は、レジスタファイルにアクセスすることなく二重機能加算器224により計算されるポスト・インクリメント・アドレスを使用するように構成される例示的なシステム300を示す。図4の概略図は、ハードウェア・プリフェッチ・アドレスを計算するように及びロード/ストア・アドレスを計算するように構成される二重機能加算器414を含む例示的なシステム400を説明する。図5の概略図は、レジスタファイルにアクセスすることなく図4中の概略図の加算器422により計算されるポスト・インクリメント・アドレスを使用するように構成される例示的なシステム500を説明する。] 図2 図3 図4 図5 [0021] 図2を参照して、2つの独立した加算器(図1中の112と114)への入力は、結合されて、1つの加算器224に入力される。図1の概略図により説明されるように、両方の加算器112,114(図1)への1つの入力は、マルチプレクサ108から始まる。それゆえに、共有された加算器224への第1の入力は、マルチプレクサ208の出力に接続される。一つの実施形態において、マルチプレクサ126(図1)は、(i)ハードウェア・プリフェッチ・アドレス計算及びポスト・インクリメント・アドレス計算のためのマルチプレクサ210の出力と、(ii)算術演算のためのレジスタファイルからの第2のALUオペランド222又は即値ALUオペランド220との間で切り替えるためのマルチプレクサ218と置き換えられる。マルチプレクサ218の出力は、共有された加算器224の第2の入力に接続される。] 図1 図2 [0022] 図2の概略図において、ロード/ストア・アドレスの計算は、図1の概略図でのものと類似している。システム200によるハードウェア・プリフェッチ・アドレスの計算のために、システム200は、ポスト・インクリメント・アドレスを計算するか又はハードウェア・プリフェッチ・アドレスを計算するかに応じて切り替えるように構成されるマルチプレクサ210を含んでも良い。マルチプレクサ218は、マルチプレクサ210の出力を受け、また、ハードウェア・プリフェッチ/ポスト・インクリメント・アドレスが計算されているか又は算術演算値234が計算されているかに応じて切り替えるように構成される。どのオペレーションが実行されるかに応じて、共有された加算器224へ情報を出力するために、レジスタファイルからの第2のALUオペランド222と即値ALUオペランド220との間で選択するように構成され、さらにマルチプレクサ210により出力されるポスト・インクリメント又はハードウェア・プリフェッチ情報を受けるマルチプレクサ218以外は、システム200による算術演算値の計算は、図1の概略図の場合と同じように計算されても良い。] 図1 図2 [0023] ハードウェア・プリフェッチ又はポスト・インクリメント・アドレス234を計算すると、そのアドレスは、フィードバックループ226を介し後続する実行サイクルにおいてマルチプレクサ228に入力されても良い。マルチプレクサ228は、データキャッシュ232にアクセスするために、現在の実行サイクルのロード/ストア・アドレス又は前の実行サイクルのハードウェア・プリフェッチ・アドレスの間で選択するための制御ロジックの一つの実施形態である。他の実施形態は、ロード/ストア・アドレス及びハードウェア・プリフェッチ・アドレスの間で選択するためのコンパレータ(comparators)、スイッチ(switches)又は他のデジタル論理を含んでも良い(ただし、これらに限定されるものではない)。] [0024] 図3を参照して、図2の概略図の場合のように、システム300は二重機能加算器224を含む。システム300は、前の実行サイクルにおいて計算されたポスト・インクリメント・アドレスの、マルチプレクサ302の入力に対するフィードバックループ226を更に含む。一つの実施形態において、マルチプレクサ302は、第3の入力について、ポスト・インクリメント・アドレス234を受けるために、構成される。それゆえに、マルチプレクサ302は、プロセッサにより実行されている演算に応じて、ポスト・インクリメント・アドレス234、ALU第1のオペレーション204及び加算器206からのロード/ストア・アドレスの間で選択するように構成されても良い。例えば、プロセッサが、一つの値についてデータキャッシュ232にアクセスするためにポスト・インクリメント・アドレスを使用する場合には、マルチプレクサ302は、データキャッシュ232にアクセスするためのメモリ・アドレス230を出力するために、ポスト・インクリメント・アドレスを、マルチプレクサ228に出力する。] 図2 図3 [0025] 図4を参照して、システム400は、ハードウェア・プリフェッチ・アドレスを計算するように及びロード/ストア・アドレスを計算するように構成される二重機能加算器414を含む。一つの実施形態において、マルチプレクサ410は、ロード/ストア・アドレスを計算するための情報(即値オペランド408)及びハードウェア・プリフェッチ・アドレスを計算するための情報(マルチプレクサ406の出力)の間で選択する。ロード/ストア・アドレスを計算するために、マルチプレクサ412は、レジスタファイルからのメモリ・アドレス432を二重機能加算器414へ出力する。マルチプレクサ410は、加算器414への第2の入力のために即値オペランド408を選択しても良い。それから、ロード/ストア・アドレスは、加算器414により計算され、マルチプレクサ416に出力されても良い。一つの実施形態において、マルチプレクサ416は、加算器414からハードウェア・プリフェッチ・アドレスを更に受けても良い。プロセッサがロード/ストア演算を実行している場合に、マルチプレクサ416は、ロード/ストア・アドレスを選択しても良い。それから、ロード/ストア・アドレスは、データキャッシュ420にアクセスするためのメモリ・アドレス418としてマルチプレクサ416から出力される。] 図4 [0026] ハードウェア・プリフェッチ・アドレスを計算するために、最初に、ロード/ストア・アドレスが第1の実行サイクルにおいて加算器414により計算され、次に、第1の実行サイクルにおいて計算されたロード/ストア・アドレスが、マルチプレクサ412により選択され、第2の実行サイクルにおいてアドレス生成加算器414に入力される。ハードウェア・プリフェッチ・アドレスを計算するための加算器414へのもう一方の入力は、ハードウェア・プリフェッチ・デクリメント・アドレス402又はハードウェア・プリフェッチ・インクリメント・アドレス404である。マルチプレクサ406は、ハードウェア・プリフェッチ・デクリメント・アドレス402及びハードウェア・プリフェッチ・インクリメント・アドレス404の間で選択する。] [0027] システム400において、ALU加算器422は、ポスト・インクリメント・アドレスを計算する。それゆえに、二重機能加算器414がポスト・インクリメント・アドレスを計算しないので、マルチプレクサ406は、ポスト・インクリメント426を要求しない。加算器414がハードウェア・プリフェッチ・アドレスを計算しているとき、マルチプレクサ410は、マルチプレクサ406の出力を選択しても良い。それから、加算器414は、ハードウェア・プリフェッチ・アドレスを生成するために、インクリメント/デクリメント・アドレス402,404及びロード/ストア・アドレスを加算する。そして、ハードウェア・プリフェッチ・アドレスは、マルチプレクサ416へ出力される。] [0028] ハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスは、二重機能加算器414により計算され、マルチプレクサ416により出力されるので、マルチプレクサは、システム400により、ロード/ストア・アドレス及びハードウェア・プリフェッチ・アドレスの間で選択することを要求されない。一つの実施形態において、マルチプレクサ416により出力されるアドレスは、アドレスがハードウェア・プリフェッチであるか又はロード/ストア・アドレスであるかに依存することなく、データキャッシュ420へアクセスするためのメモリ・アドレス418として使用される。] [0029] 算術演算値を計算するために、加算器422は、第1の入力においてレジスタファイルからの第1のオペランド432を受け、また、第2の入力において即値オペランド(すなわち、定数)428又はレジスタファイルからの第2のオペランド430を受けても良い。レジスタファイルからの第1のオペランド432を受けるために、マルチプレクサ412は、オペランド432をマルチプレクサ416に出力する。二重機能加算器414は、2つの異なるタイプの入力(すなわち、レジスタファイルからのメモリオペランド432又は前に加算器414により計算されたロード/ストア・アドレス)を受けることがあるので、システム400は、マルチプレクサ412を含んでいる。このように、マルチプレクサ412は、システムが(i)ロード/ストア若しくは算術演算を処理しているか又は(ii)ハードウェア・プリフェッチを処理しているかに応じて、レジスタファイルからのオペランド(メモリ又はALU)432又はロード/ストア・アドレスを選択する。] [0030] 算術演算値を計算することに加えて、ALU加算器422は、ポスト・インクリメント・アドレスを更に計算しても良い。ポスト・インクリメント・アドレスを計算するために、加算器422はまた、ポスト・インクリメント426を受けても良い。従って、マルチプレクサ424は、加算器422がポスト・インクリメント・アドレスを計算しているか又は算術演算値を計算しているかに応じて、ALUオペランド428と430とポスト・インクリメント426との間で選択する。] [0031] 図5を参照して、図4の概略図の場合のように、システム500は二重機能加算器414を含む。システム500は、前の実行サイクルにおいてALU加算器422により計算されたポスト・インクリメント・アドレスの、マルチプレクサ502の入力に対するフィードバックループを更に含む。一つの実施形態において、マルチプレクサ502は、第3の入力について、ポスト・インクリメント・アドレスを受けるために、構成される。それゆえに、マルチプレクサ502は、プロセッサにより実行されている演算に応じて、ポスト・インクリメント・アドレス、レジスタファイルからのメモリ又はALUオペランド414、及び計算されたロード/ストア・アドレスの間で選択するように構成される。例えば、プロセッサが、一つの値についてデータキャッシュ420にアクセスするためにポスト・インクリメント・アドレスを使用する場合には、マルチプレクサ502は、データキャッシュ420にアクセスするためのメモリ・アドレス418として、ポスト・インクリメント・アドレスを出力する。] 図4 図5 [0032] 図2−5の概略図に示される実施形態の各々において、2つの加算器(ここで、一つは、二重機能加算器である)を含むシステムは、ハードウェア・プリフェッチ・アドレス、ロード/ストア・アドレス及び算術演算からの値を計算するように構成される。図2−5の概略図はシングルスレッド・プロセッサ・アーキテクチャーに関して説明されたが、下で説明されるように、マルチスレッド・プロセッサにおいて使用されても良い。] 図2 [0033] マルチスレッド・プロセッサの例示的な実施形態のオペレーション 例示的な実施形態において、図2−5の概略図に示されるシステム200,300,400,500は、マルチスレッド・プロセッサ・アーキテクチャーにおいて動作しても良い。図6は、マルチスレッド・プロセッサのためのインストラクション・パイプライン600を示すダイアグラムである。図6を参照して、ダイアグラムは、6つのスレッド618−628に関するクロック602のサイクルX〜X+6(604−616)にわたるパイプライン600を示す。一つの例において、インストラクションの処理(すなわち、インストラクション・サイクル)は、6つのオペレーション・サイクルに分けられる:デコード(DE)、レジスタ・ファイル・アクセス(RF)、第1の実行サイクル(X1)、第2の実行サイクル(X2)、第3の実行サイクル(X3)及びライトバック(WB)。パイプラインにおいて存在し得るが図示されない他のオペレーション・サイクルは、フェッチされる。一つの例において、各々のオペレーション・サイクルは、1つのクロック・サイクルで実行されても良い。] 図2 図6 [0034] 一つの実施形態において、1つのインストラクション・サイクルは、1つのインストラクションに関するオペレーション・サイクルの各々が完了する時間である。例えば、スレッド0 (618)に対する1つのインストラクション・サイクルは、クロック・サイクルX(604)〜X+5(614)、すなわち6つのクロック・サイクルであっても良い。パイプラインがフェッチ・オペレーション・サイクルを含むならば、インストラクション・サイクルは、7つのクロック・サイクルであっても良い。それゆえに、システム200−300(図2−3)について、1つのインストラクション・サイクルは、パイプラインのオペレーション・サイクルの各々(例えば、デコード(DE)、レジスタ・ファイル・アクセス(RF)、第1の実行サイクル(X1)、第2の実行サイクル(X2)、第3の実行サイクル(X3)及びライトバック(WB))を含んでも良い。] 図2 [0035] 例であるロード命令に関するインストラクション・サイクルに含まれるオペレーション・サイクルの説明において、フェッチ・オペレーション・サイクル(図示せず)は、プロセッサが実行のためのインストラクションを検索しロードするパイプライン・オペレーション・サイクルである場合がある。例えば、図2−3の概略図に示されるシステム200及び300について、メモリ・アドレスAに、ある定数を加算することを実行する、例であるスレッド0 (618)のインストラクションは、プロセッサにより実行されるために、フェッチされても良い。DE(630,644,656,666,674,680)は、プロセッサがロード命令をオペランド中にデコードするオペレーション・サイクルである。それゆえに、前のロード命令の例において、プロセッサは、DE (630)の間に、即値オペランド及び/又はオペランドをストアしているレジスタファイルのレジスタ・ファイル・アドレスを集める(gather)ためのインストラクションを、デコードする。RF(632,646,658,668,676,682)は、プロセッサがオペランドをレジスタファイルから検索するオペレーション・サイクルである。それゆえに、プロセッサは、メモリオペランド204(図2−3)をレジスタファイルから検索しても良い。] 図2 [0036] X1、X2及びX3(634−638,648−652,660−664,670−672,678)は、プロセッサが、インストラクションの実行の第1の部分、第2の部分及び第3の部分をそれぞれ完了するオペレーション・サイクルである。ロード・オペレーション・インストラクションについて、オペレーション・サイクルX1 (634は)、アドレス生成加算器206(図2−3)によりロード/ストア・アドレスを計算することを含んでも良い。オペレーション・サイクルX2 (636)は、マルチプレクサ208,302及びマルチプレクサ228(図2−3)による、データキャッシュ232(図2−3)にアクセスするためのメモリ・アドレス230としての、ロード/ストア・アドレスの選択を含んでも良い。X3 (638)は、ロードを実行するためにデータキャッシュ232にアクセスすることを含んでも良い。WB(640,654)は、オペランドがレジスタファイルにライトバックされることがあるオペレーション・サイクルである。例えば、ポスト・インクリメント・アドレス又は算術演算値が計算される場合には、ポスト・インクリメント・アドレス又は算術演算値は、パイプライン・オペレーション・サイクルWBの間に、レジスタファイルにライトされる。ロード命令についてに、プロセッサは、該インストラクションのためのWBの間に、値をレジスタファイルにライトバックしなくても良い。] 図2 [0037] 再度、図2−3の概略図及び図6のダイアグラムに示されるパイプライン600を参照して、パイプライン・オペレーション・サイクルX1の間、アドレス生成加算器206が動作しても良く、パイプライン・オペレーション・サイクルX2の間、マルチプレクサ208,210,218,228及び302が動作しても良く、そして、パイプライン・オペレーション・サイクルX3の間、加算器224が動作しても良く、及び、データキャッシュ232がアクセスされても良い。システム200(図2)の例について、ハードウェア・プリフェッチ・アドレスを計算するために、ロード/ストア・アドレスが、パイプライン・オペレーション・サイクルX1の間に、加算器206により計算され、該ロード/ストア・アドレスが、パイプライン・オペレーション・サイクルX2の間に、マルチプレクサ208により加算器224の第1の入力に送られ、ハードウェア・プリフェッチ・デクリメント・アドレス212又はハードウェア・プリフェッチ・インクリメント・アドレス214が、同様にパイプライン・オペレーション・サイクルX2の間に、マルチプレクサ210,218により加算器224の第2の入力に送られ、そして、該ハードウェア・プリフェッチ・アドレスは、パイプライン・オペレーション・サイクルX3の間に、加算器224により計算される。] 図2 図6 [0038] マルチスレッド・アーキテクチャーにおいて、異なるパイプライン・オペレーション・サイクルが、異なるスレッドからのインストラクション上で並行して実行されても良い。図示されるように、クロック・サイクルX+2 (608)の間、スレッド0 (618)は、オペレーション・サイクルX1 (634)にあっても良く、スレッド1 (620)は、オペレーション・サイクルRF (646)にあっても良く、スレッド2 (622)は、オペレーション・サイクルDE (656)にあっても良い。その結果、複数のスレッドのためのデータが、同時に、システム200,300,400,500中にあっても良い。データは、シングル・スレッドについて、一つのオペレーション・サイクルから他のオペレーション・サイクルまで持続することがあり(例えば、ハードウェア・プリフェッチ・アドレス又はポスト・インクリメント・アドレスは、次のオペレーション・サイクルにおいてもとのシステム中へ入力されることがある)、また、異なるスレッドからの複数のデータがシステム中で共存することがあるので、スレッドの次の実行サイクルまで、スレッドの値をストアするために、システム200,300,400,500は、システムの異なる位置に一時ストレージ(temporary storage)を含んでも良い。例えば、オペレーション・サイクルX3 (638)(クロック・サイクルX+4 (612))の間に、図3の概略図中の加算器224によりスレッド0で計算されるハードウェア・プリフェッチ・アドレスは、マルチプレクサ228がデータキャッシュ136にアクセスするためにハードウェア・プリフェッチ・アドレスを選択することがある次のオペレーション・サイクルX2(例えば、クロック・サイクルX+9)までストアされても良い。一つの実施形態において、フリップ・フロップが、システムに挿入されて、予め定められた数のクロック・サイクルについて、値をストアするように構成される(例えば、ハードウェア・プリフェッチ・アドレスを5つのクロック・サイクルについてストアする)。ストレージの他の実施形態は、バッファ、メモリ又は他のストレージ・デバイスを含む。] 図3 [0039] その結果、図2−5の概略図中に示されるシステムの例示的な実施形態は、シングル・スレッド・アーキテクチャー及びマルチスレッド・アーキテクチャーにおいて実行するように構成されても良い。] 図2 [0040] 例示的な実施形態のオペレーションの例示的な方法 図7−9は、図2−5の概略図に示されるシステム200,300,400,500のオペレーションの例示的な方法を示すフローチャートである。図7のフローチャートは、図2及び3の概略図中に示されるシステム200,300によりハードウェア・プリフェッチ、ロード/ストア又は算術演算を実行するための例示的な方法700を示す。図8のフローチャートは、図4及び5の概略図中に示されるシステム400,500によりハードウェア・プリフェッチ、ロード/ストア又は算術演算を実行するための例示的な方法800を示す。図9のフローチャートは、図3及び5の概略図中に示されるシステム300,500によりポスト・インクリメント・アドレスを計算し使用するための例示的な方法900を示す。] 図2 図3 図4 図7 図8 図9 [0041] 図7を参照して、本フローチャートは、ハードウェア・プリフェッチ・アドレス及び算術演算値が二重機能加算器224(図2−3)により計算される方法700を示す。702から始まって、プロセッサは、ロード/ストア演算が実行されるかどうか判定する。ロード/ストア演算が実行される場合には、704において、加算器206は、レジスタファイルからのメモリオペランド204を即値オペランド220に加算することによって、ロード/ストア・アドレスを計算する。704においてロード/ストア・アドレスを計算すると、706において、マルチプレクサ208及び228(図2)又は302及び228(図3)は、そのロード/ストア・アドレスを、データキャッシュ232にアクセスする際のメモリ・アドレス230として選択する。] 図2 図3 図7 [0042] 702においてロード/ストアは実行されないとプロセッサが判定する場合には、708において、プロセッサは、ハードウェア・プリフェッチが実行されるかどうか判定する。ハードウェア・プリフェッチが実行される場合には、710において、加算器206は、レジスタファイルからのメモリオペランド204を即値オペランド204に加えることによって、ロード/ストア・アドレスを計算する。ロード/ストア・アドレスを計算すると、712において、マルチプレクサ210及び218は、計算されたロード/ストア・アドレスに加えられるために、ハードウェア・プリフェッチ・デクリメント・アドレス212又はハードウェア・プリフェッチ・インクリメント・アドレス214を選択する。714へ進んで、二重機能加算器224は、ハードウェア・プリフェッチ・アドレスを生成するために、712からの選択された値を、ロード/ストア・アドレスに加える。714においてハードウェア・プリフェッチ・アドレスを計算すると、マルチプレクサ228は、716においてデータキャッシュ232にアクセスするために、ハードウェア・プリフェッチ・アドレスを選択しても良い。先に述べたように、マルチプレクサ228によるハードウェア・プリフェッチ・アドレスの選択及びハードウェア・プリフェッチの連続的な実行は、その後の実行サイクルにおいて実行されても良い。] [0043] 708において、ハードウェア・プリフェッチが実行されないとプロセッサが判定する場合には、本処理は718へ移動する。718において、マルチプレクサ218は、レジスタファイルからの第2のALUオペランド222又は即値ALUオペランド220を選択する。一つの実施形態において、オペレーションは、オペランドがレジスタファイルから検索されるべきか(例えば、オペランドのためのレジスタ・ファイル・アドレスをリストすることによって)又は定数か(例えば、オペランドは定数であり、レジスタ・ファイル・アドレスでない)をリストする。マルチプレクサ208は、レジスタファイルからの第1のALUオペランド204を選択する。算術演算のために加えられるために異なるオペランドを選択すると、720において、二重機能加算器224は、算術演算を実行して算術演算値を生成するために、マルチプレクサ218からの選択されたオペランドを、レジスタファイルからのオペランド204に加える。] [0044] 図8を参照して、本フローチャートは、ハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスが二重機能加算器414(図4−5)により計算される方法800を説明する。802から始まって、プロセッサは、ロード/ストア演算が実行されるかどうか判定する。ロード/ストア演算が実行される場合には、804において、マルチプレクサ412は、レジスタファイルからのメモリオペランド432を選択し、マルチプレクサ410は、即値オペランド428を選択する。806へ進んで、二重機能加算器414は、ロード/ストア・アドレスを作成するために、マルチプレクサ412及び410の出力(それぞれ、メモリオペランド432及び即値オペランド428)を加算する。806においてロード/ストア・アドレスを計算すると、808において、マルチプレクサ416(図4)又は502(図5)は、そのロード/ストア・アドレスを、データキャッシュ420にアクセスする際のメモリ・アドレス418として選択する。] 図4 図5 図8 [0045] 802においてロード/ストアが実行されないとプロセッサが判定する場合には、810において、プロセッサは、ハードウェア・プリフェッチが実行されるかどうか判定する。ハードウェア・プリフェッチが実行される場合には、812において、マルチプレクサ412は、レジスタファイルからのメモリオペランド432を選択し、マルチプレクサ410は、即値オペランド428を選択する。814へ進んで、二重機能加算器414は、ロード/ストア・アドレスを生成するために、マルチプレクサ412及び410の出力(それぞれ、メモリオペランド432及び即値オペランド428)を加算する。ロード/ストア・アドレスを計算すると、816において、マルチプレクサ406及び410は、計算されたロード/ストア・アドレスに加えられるために、ハードウェア・プリフェッチ・デクリメント・アドレス402又はハードウェア・プリフェッチ・インクリメント・アドレス404を選択する。一つの実施形態において、マルチプレクサ412は、計算されたロード/ストア・アドレスを選択する。ロード/ストア・アドレスの計算の後のマルチプレクサ412によるロード/ストア・アドレスの選択及びハードウェア・プリフェッチの連続的な実行は、その後の実行サイクルにおいて実行されても良い。818へ進んで、二重機能加算器414は、ハードウェア・プリフェッチ・アドレスを生成するために、816からの選択されたハードウェア・インクリメント/デクリメント・アドレスを、ロード/ストア・アドレスに加える。818においてハードウェア・プリフェッチ・アドレスを計算すると、820において、マルチプレクサ416(図4)又は502(図5)は、データキャッシュ420にアクセスするために、ハードウェア・プリフェッチ・アドレスを選択しても良い。] 図4 図5 [0046] 810においてハードウェア・プリフェッチが実行されないとプロセッサが判定するならば、本処理は822へ移動する。822において、マルチプレクサ424は、レジスタファイルからの第2のALUオペランド128又は即値ALUオペランド130を選択する。一つの実施形態において、オペレーションは、オペランドがレジスタファイルから検索されるべきか(例えば、オペランドのためのレジスタ・ファイル・アドレスをリストすることによって)又は定数か(例えば、オペランドは定数であり、レジスタ・ファイル・アドレスでない)をリストする。マルチプレクサ412及び416(図4)又は502(図5)は、レジスタファイルからの第1のALUオペランド102を選択する。算術演算のために加えられるために異なるオペランドを選択すると、824において、ALU加算器422は、算術演算を実行して算術演算値を生成するために、マルチプレクサ424からの選択されたオペランドを、レジスタファイルからのオペランド102に加える。] 図4 図5 [0047] 図9を参照して、本フローチャートは、システム300(図3)及び500(図5)が、ポスト・インクリメント・アドレスをリードするためにレジスタファイルにアクセスすることなく、ポスト・インクリメント・アドレスを計算して使用するために、ポスト・インクリメント・アドレスのためにフィードバックループを含む方法900を示す。902から始まって、加算器224(図3)又は422(図5)は、レジスタファイルにライトされるポスト・インクリメント・アドレスを計算する。そして、プロセッサは、計算されたポスト・インクリメント・アドレスを、レジスタファイルにストアしても良い。ポスト・インクリメント・アドレスを計算すると、904において、プロセッサは、ポスト・インクリメント・アドレスが、メモリからロードされる値を指し示しているか又は以降の実行サイクルにおいて使用される値を指し示しているか判定する。例えば、ポスト・インクリメントが、メモリ中の、以降のインストラクションのための入力オペランドを指し示す場合には、該入力オペランドは、以降の実行サイクルの間に使用するためにロードされる値である。] 図3 図5 図9 [0048] ポスト・インクリメント・アドレスが、ロードされるオペランドを指し示す場合には、906において、計算されたポスト・インクリメント・アドレスは、レジスタファイルにアクセスすることなく、データキャッシュ232(図3)又は420(図5)にアクセスするために用いられる。それゆえに、プロセッサは、システム300又は500において存続するポスト・インクリメント・アドレスを用いることによって、レジスタファイルからポスト・インクリメント・アドレスをリードすることをスキップする。システム300(図3)について、加算器224により前の実行サイクルの間に計算されたポスト・インクリメント・アドレスは、望まれるオペランドを検索するためにデータキャッシュ232にアクセスするため、マルチプレクサ302及び228による選択のために、マルチプレクサ302に入力される。システム500(図5)について、前の実行サイクルの間に加算器422により計算されたポスト・インクリメント・アドレスは、望まれるオペランドを検索するためにデータキャッシュ420にアクセスするため、マルチプレクサ502による選択のために、マルチプレクサ502に入力される。] 図3 図5 [0049] 904において、計算されたポスト・インクリメント・アドレスが、ロードされるオペランドを指し示さない場合には、システム300(図3)又は500(図5)は、次の実行サイクルにおいてポスト・インクリメント・アドレスを必要とせず、それゆえ、実行されるオペレーションのタイプに応じて、望まれるオペランドのためにレジスタファイルにアクセスする。] 図3 図5 [0050] 上記の説明された特徴を含む例であるデバイス 二重機能加算器及びポスト・インクリメント・アドレスのフィードバックループを含むシステムは、例えばデジタル・シグナル・プロセッサのような任意のプロセッサの中に含まれても良い。図10−14の一般的なダイアグラムは、ロード/ストア演算及びハードウェア・プリフェッチ、ハードウェア・プリフェッチ及び算術演算を実行すること、又は、プロセッサのレジスタファイルにアクセスすることなくポスト・インクリメント・アドレスを使用することを支援するために、二重機能加算器及び/又はポスト・インクリメント・フィードバックループを組み込んでもよい例であるデバイスを示す。ダイアグラムは、例であるデバイスのプロセッサに二重機能加算器を含むものとして示す。] 図10 [0051] 図10は、ポータブル通信デバイス1000の例示的な実施形態を示す図である。図10の一般的なダイアグラム中に示されるように、ポータブル通信デバイスは、デジタル・シグナル・プロセッサ(DSP)1004を含むオンチップ・システム1002を含む。図10の一般的なダイアグラムはまた、デジタル・シグナル・プロセッサ1004及びディスプレイ1008に接続された、ディスプレイ・コントローラ1006を示す。さらに、入力デバイス1010が、DSP1004に接続される。図示されるように、メモリ1012が、DSP1004に接続される。さらに、符号器/復号器(CODEC)1014が、DSP1004に接続されても良い。スピーカ1016及びマイクロフォン1018が、CODEC1014に接続されても良い。] 図10 [0052] 図10の一般的なダイアグラムは、さらに、デジタル・シグナル・プロセッサ1004及び無線アンテナ1022に接続された、無線コントローラ1020を示す。特定の実施形態において、電源1024が、オンチップ・システム602に接続される。さらに、特定の実施形態において、図6中に示されるように、ディスプレイ626、入力デバイス630、スピーカ1016、マイクロフォン1018、無線アンテナ1022及び電源1024は、オンチップ・システム1002に外付けされる。しかし、それぞれはオンチップ・システム1002のコンポーネントに接続される。特定の実施形態において、前述のとおり、DSP1004は、ハードウェア・プリフェッチ・アドレス及び算術演算値の両方又はハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスの両方を計算する二重機能加算器1080を含む。] 図10 図6 [0053] 図11は、携帯電話1100の例示的な実施形態を示す図である。図示されるように、携帯電話1100は、連結されるデジタル・ベースバンド・プロセッサ1104及びアナログ・ベースバンド・プロセッサ1106を含む、オンチップ・システム1102を含む。特定の実施形態において、デジタル・ベースバンド・プロセッサ1104は、デジタル・シグナル・プロセッサである。図11の一般的なダイアグラム中に示されるように、ディスプレイ・コントローラ1108及びタッチスクリーン・コントローラ1110が、デジタル・ベースバンド・プロセッサ1104に接続される。次に、オンチップ・システム1102に外付けされるタッチスクリーン・ディスプレイ1112が、ディスプレイ・コントローラ1108及びタッチスクリーン・コントローラ1110に接続される。] 図11 [0054] 図11の一般的なダイアグラムは、さらに、デジタル・ベースバンド・プロセッサ1104に接続された、ビデオ・エンコーダ1114、例えば、位相反転線(phase alternating line)(PAL)符号器、順次式カラーメモリ(sequential couleur a memoire)(SECAM)符号器、又は、全米テレビジョン放送方式標準化委員会(national television system(s) committee)(NTSC)符号器を示す。さらに、ビデオ・アンプ1116が、ビデオ・エンコーダ1114及びタッチスクリーン・ディスプレイ1112に接続される。また、ビデオポート1118が、ビデオ・アンプ1116に接続される。図11の一般的なダイアグラム中に表されるように、ユニバーサルシリアルバス(USB)コントローラ1120が、デジタル・ベースバンド・プロセッサ1104に接続される。また、USBポート1122が、USBコントローラ1120に接続される。メモリ1124及び加入者識別モジュール(SIM)カード1126がまた、デジタル・ベースバンド・プロセッサ1104に接続されても良い。さらに、図11の一般的なダイアグラムに示されるように、デジタル・カメラ1128が、デジタル・ベースバンド・プロセッサ1104に接続されても良い。例示的な実施形態において、デジタル・カメラ1128は、電荷結合素子(CCD)カメラ又は相補型金属酸化膜半導体(CMOS)カメラである。] 図11 [0055] 図11の一般的なダイアグラム中に更に示されるように、ステレオ・オーディオCODEC1130が、アナログ・ベースバンド・プロセッサ1106に接続されても良い。さらに、オーディオ・アンプ1132が、ステレオ・オーディオCODEC1130に接続されても良い。例示的な実施形態では、第1のステレオ・スピーカ1134及び第2のステレオ・スピーカ1136が、オーディオ・アンプ1132に接続される。マイクロフォン・アンプ1138がまた、ステレオ・オーディオCODEC1130に接続されても良い。さらに、マイクロフォン1140が、マイクロフォン・アンプ1138に接続されても良い。特定の実施形態において、周波数変調(FM)ラジオ・チューナー1142が、ステレオ・オーディオCODEC1130に接続されても良い。また、FMアンテナ1144が、FM無線チューナー1142に接続される。さらに、ステレオ・ヘッドホン1146が、ステレオ・オーディオCODEC1130に接続されても良い。] 図11 [0056] 図11の一般的なダイアグラムは、更に、無線周波数(RF)トランシーバ1148がアナログ・ベースバンド・プロセッサ1106に接続されても良いことを示す。RFスイッチ1150が、RFトランシーバ1148及びRFアンテナ1152に接続されても良い。キーパッド1154が、アナログ・ベースバンド・プロセッサ1106に接続されても良い。また、マイクロフォン付きモノラル・ヘッドセット1156が、アナログ・ベースバンド・プロセッサ1106に接続されても良い。さらに、バイブレータ・デバイス1158が、アナログ・ベースバンド・プロセッサ1106に接続されても良い。図11の一般的なダイアグラムはまた、電源1160がオンチップ・システム1102に接続されても良いことを示す。特定の実施形態において、電源1160は、携帯電話1100の様々なコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の実施形態において、電源は、AC電源ソースに接続された、交流(AC)・DC変換から得られる充電式DCバッテリー又はDC電源である。] 図11 [0057] 図11の一般的なダイアグラム中に表されるように、タッチスクリーン・ディスプレイ1112、ビデオポート1118、USBポート1122、カメラ1128、第1のステレオ・スピーカ1134、第2のステレオ・スピーカ1136、マイクロフォン1140、FMアンテナ1144、ステレオ・ヘッドホン1146、RFスイッチ1150、RFアンテナ1152、キーパッド1154、モノラル・ヘッドセット1156、バイブレーター1158及び電源1160は、オンチップ・システム1102に外付けされても良い。特定の実施形態において、前述のとおり、デジタル・ベースバンド・プロセッサ1104は、ハードウェア・プリフェッチ・アドレス及び算術演算値の両方又はハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスの両方を計算する二重機能加算器1180を含む。] 図11 [0058] 図12は、無線インターネットプロトコル(IP)電話1200の例示的な実施形態を示す図である。図示されるように、無線IP電話1200は、デジタル・シグナル・プロセッサ(DSP)1204を含むオンチップ・システム1202を含む。ディスプレイ・コントローラ1206が、DSP1204に接続されても良い。また、ディスプレイ1208が、ディスプレイ・コントローラ1206に接続される。例示的な実施形態において、ディスプレイ1208は、液晶ディスプレイ(LCD)である。図12は、キーパッド1210がDSP1204に接続されても良いことを更に示す。] 図12 [0059] フラッシュメモリ1212が、DSP1204に接続されても良い。シンクロナスダイナミックランダムアクセスメモリ(SDRAM)1214、スタティックランダムアクセスメモリ(SRAM)1216及び電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)1218が、DSP1204に接続されても良い。図12の一般的なダイアグラムはまた、発光ダイオード(LED)1220がDSP1204に接続されても良いことを示す。さらに、特定の実施形態において、ボイスCODEC1222が、DSP1204に接続されても良い。アンプ1224が、ボイスCODEC1222に接続されても良い。また、モノラル・スピーカ1226が、アンプ1224に接続されても良い。図12の一般的な図は、さらに、ボイスCODEC1222に接続されるモノラル・ヘッドセット1228を示す。特定の実施形態において、モノラル・ヘッドセット1228は、マイクロフォンを含む。] 図12 [0060] 無線ローカルエリアネットワーク(WLAN)ベースバンド・プロセッサ1230が、DSP1204に接続されても良い。RFトランシーバ1232が、WLANベースバンド・プロセッサ1230に接続されても良い。また、RFアンテナ1234が、RFトランシーバ1232に接続されても良い。特定の実施形態において、Bluetooth(登録商標)コントローラ1236がまた、DSP1204に接続されても良く、また、Bluetoothアンテナ1238がコントローラ1236に接続されても良い。図12の一般的なダイアグラムはまた、USBポート1240がDSP1204に接続されてもよいことを示す。さらに、電源1242はオンチップ・システム1202に接続して、電力を無線IP電話1200の様々なコンポーネントへ供給する。] 図12 [0061] 図12の一般的なダイアグラム中に示されるように、ディスプレイ1208、キーパッド1210、LED1220、モノラル・スピーカ1226、モノラル・ヘッドセット1228、RFアンテナ1234、Bluetoothアンテナ1238、USBポート1240及び電源1242は、オンチップ・システム1202に外付けされても良く、また、オンチップ・システム1202の1又は複数のコンポーネントに接続されても良い。特定の実施形態において、前述のとおり、DSP1204は、ハードウェア・プリフェッチ・アドレス及び算術演算値の両方又はハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスの両方を計算する二重機能加算器1280を含む。] 図12 [0062] 図13は、ポータブル・デジタル・アシスタント(PDA)900の例示的な実施形態を示す図である。図示されるように、PDA1300は、デジタル・シグナル・プロセッサ(DSP)1304を含むオンチップ・システム1302を含む。タッチスクリーン・コントローラ1306及びディスプレイ・コントローラ1308が、DSP1304に接続される。さらに、タッチスクリーン・ディスプレイ1310が、タッチスクリーン・コントローラ1306に接続され、また、ディスプレイ・コントローラ1308に接続される。図13の一般的なダイアグラムはまた、キーパッド1312がDSP1304に接続されてもよいことを示す。] 図13 [0063] 特定の実施形態において、ステレオ・オーディオCODEC1326が、DSP1304に接続されても良い。第1のステレオ・アンプ1328が、ステレオ・オーディオCODEC1326に接続されても良く、また、第1のステレオ・スピーカ1330が、第1のステレオ・アンプ1328に接続されても良い。さらに、マイクロフォン・アンプ1332が、ステレオ・オーディオCODEC1326に接続されても良く、また、マイクロフォン1334が、マイクロフォン・アンプ1332に接続されても良い。図13の一般的なダイアグラムは、第2のステレオ・アンプ1336がステレオ・オーディオCODEC1326に接続されてもよく、また、第2のステレオ・スピーカ1338が第2のステレオ・アンプ1336に接続されてもよいことを示す。特定の実施形態において、ステレオ・ヘッドホン1340はまた、ステレオ・オーディオCODEC1326に接続されても良い。] 図13 [0064] 図13の一般的なダイアグラムはまた、802.11コントローラ1342がDSP1304に接続されてもよく、また、802.11アンテナ1344は、802.11コントローラ1342に接続されてもよいことを示す。さらに、Bluetoothコントローラ1346が、DSP1304に接続されても良く、また、Bluetoothアンテナ1348が、Bluetoothコントローラ1346に接続されても良い。USBコントローラ1350が、DSP1304に接続されても良く、また、USBポート1352が、USBコントローラ1350に接続されても良い。さらに、スマートカード1354(例えば、マルチメディア・カード(MMC)又はセキュア・デジタル・カード(SD))が、DSP1304に接続されても良い。さらに、電源1356は、オンチップ・システム1302に接続されても良く、また、PDA1300の様々なコンポーネントに電力を供給しても良い。] 図13 [0065] 図13の一般的なダイアグラム中に示されるように、ディスプレイ1310、キーパッド1312、IrDAポート1322、デジタル・カメラ1324、第1のステレオ・スピーカ1330、マイクロフォン1334、第2のステレオ・スピーカ1338、ステレオ・ヘッドホン1340、802.11アンテナ1344、Bluetoothアンテナ1348、USBポート1352及び電源1350は、オンチップ・システム1302に外付けされても良く、また、オンチップ・システムの上で1又は複数のコンポーネントに接続されても良い。特定の実施形態において、前述のとおり、DSP1304は、ハードウェア・プリフェッチ・アドレス及び算術演算値の両方又はハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスの両方を計算する二重機能加算器1380を含む。] 図13 [0066] 図14は、オーディオ・ファイル・プレーヤー(例えば、MP3プレーヤー)1400の例示的な実施形態を示す図である。図示されるように、オーディオ・ファイル・プレーヤー1400は、デジタル・シグナル・プロセッサ(DSP)1404を含むオンチップ・システム1402を含める。ディスプレイ・コントローラ1406が、DSP1404に接続されても良い。また、ディスプレイ1408が、ディスプレイ・コントローラ1406に接続される。例示的な実施形態において、ディスプレイ1408は、液晶ディスプレイ(LCD)である。キーパッド1410が、DSP1404に接続されても良い。] 図14 [0067] 図14の一般的なダイアグラム中に更に表されるように、フラッシュメモリ1412及びリードオンリーメモリ(ROM)1414はDSP1404に接続されても良い。さらに、特定の実施形態において、オーディオCODEC1416が、DSP1404に接続されても良い。アンプ1418が、オーディオCODEC1416に接続されても良く、また、モノラル・スピーカ1420が、アンプ1418に接続されても良い。図14の一般的なダイアグラムは、マイクロフォン入力1422及びステレオ入力1424がまたオーディオCODEC1416に接続されてもよいことを更に示す。特定の実施形態において、ステレオ・ヘッドホン1426がまた、オーディオCODEC1416に接続されても良い。] 図14 [0068] USBポート1428及びスマートカード1430が、DSP1404に接続されても良い。さらに、電源1432は、オンチップ・システム1402に接続されても良く、また、オーディオ・ファイル・プレーヤー1400の様々なコンポーネントに電力を供給しても良い。] [0069] 図14の一般的なダイヤグラムに示されるように、ディスプレイ1408、キーパッド1410、モノラル・スピーカ1420、マイクロフォン入力1422、ステレオ入力1424、ステレオ・ヘッドホン1426、USBポート1428及び電源1432は、オンチップ・システム1402に外付けされ、また、オンチップ・システム1402の上で1又は複数のコンポーネントに接続される。特定の実施形態において、前述のとおり、DSP1404は、ハードウェア・プリフェッチ・アドレス及び算術演算値の両方又はハードウェア・プリフェッチ・アドレス及びロード/ストア・アドレスの両方を計算する二重機能加算器1480を含む。] 図14 [0070] 一般 本明細書で開示される発明の概念の実施形態の前述の説明は、例示及び説明の目的だけのために表されたものであり、また、余すところのないものであることを意図されたものではなく又は開示される発明の概念を本明細書で開示される正確なフォームに制限することを意図されたものではない。多数の修正及び翻案(adaptations)は、本明細書で開示される発明の概念の精神及び範囲から逸脱することなく、当業者にとって明らかである。]
权利要求:
請求項1 第1のインストラクションについて、該第1のインストラクションがハードウェア・プリフェッチ・インストラクションであるときのハードウェア・プリフェッチ用アドレス、及び、該第1のインストラクションが算術演算インストラクションであるときの算術演算からの値を判定するように構成される第1の加算器を含むシステム。 請求項2 前記第1の加算器に伝達可能に接続された第2の加算器を更に含み、該第2の加算器は、ロード/ストア演算のためのアドレスを判定する請求項1に記載のシステム。 請求項3 前記第1の加算器及び前記第2の加算器に伝達可能に接続された制御ロジックを更に含み、該制御ロジックは、前の実行サイクルの間の前記第1の加算器の出力及び現在の実行サイクルの間の前記第2の加算器の出力から選択するように構成される請求項2に記載のシステム。 請求項4 前記制御ロジックに伝達可能に接続されたデータキャッシュを更に含み、該制御ロジックは、前記第1の加算器の出力又は前記第2の加算器の出力のうちの一つを使用して、該データキャッシュにアクセスするように更に構成される請求項3のシステム。 請求項5 前記第1の加算器は、ポスト・インクリメント・アドレスを判定するように更に構成される請求項1のシステム。 請求項6 前記第2の加算器に伝達可能に接続されたバイパスを更に含み、該バイパスは、前の実行サイクルの間に前記第1の加算器により出力された前記ポスト・インクリメント・アドレスを、現在の実行サイクルの間に前記第2の加算器の入力に送るように構成される請求項5のシステム。 請求項7 前記第1の加算器及び前記第2の加算器に伝達可能に接続されたレジスタファイルを更に含み、前記レジスタファイルは、前記第1の加算器から前記出力を受け、前記第2の加算器にメモリオペランドを送り、及び、前記第2の加算器に算術論理ユニット(ALU)オペランドを送るように構成される請求項3のシステム。 請求項8 前記システムは、マルチスレッド・アーキテクチャーである請求項3のシステム。 請求項9 前記システムは、スレッドのための前のクロック・サイクルの間、該スレッドのための現在のクロック・サイクルまで、判定された前記第2の加算器の出力をストアするように構成された請求項8のシステム。 請求項10 第1のインストラクションがハードウェア・プリフェッチ・インストラクションである場合に、第1の加算器によりハードウェア・プリフェッチのためのアドレスを判定することと、前記第1のインストラクションが算術演算インストラクションである場合に、前記第1の加算器により算術演算からの値を判定することを含む方法。 請求項11 前記第1の加算器に伝達可能に接続された第2の加算器によりロード/ストア演算のためのアドレスを判定することと、前記第1の加算器及び前記第2の加算器に伝達可能に接続された制御ロジックにより、前の実行サイクルの間の前記第1の加算器の出力及び前記現在の実行サイクルの間の前記第2の加算器の出力から選択することを更に含む請求項10の方法。 請求項12 前記第1の加算器の出力又は前記第2の加算器の出力のうちの一つを使用して、前記制御ロジックに伝達可能に接続されたデータキャッシュにアクセスすることを更に含む請求項11の方法。 請求項13 前記第1の加算器によりポスト・インクリメント・アドレスを判定することを更に含む請求項12の方法。 請求項14 前の実行サイクルの間に前記第1の加算器により出力された前記ポスト・インクリメント・アドレスを、現在の実行サイクルの間に前期第2の加算器の入力に送ることを更に含む請求項13の方法。 請求項15 前記第1の加算器に伝達可能に接続されたレジスタファイルにより、前記第1の加算器からの受けた出力をストアすることを更に含む請求項11の方法。 請求項16 第1のインストラクションがハードウェア・プリフェッチ・インストラクションであるときのハードウェア・プリフェッチのためのアドレス、及び、該第1のインストラクションが算術演算インストラクションであるときの算術演算から値を判定するための手段を含むシステム。 請求項17 ロード/ストア演算のためのアドレスを判定するための手段と、現在の実行サイクルの間に判定されたロード/ストア演算のアドレス及び前の実行の間に判定されたハードウェア・プリフェッチのアドレスから選択するための手段とを更に含む請求項16のシステム。 請求項18 前記選択されたアドレスを使用して、データキャッシュにアクセスするために手段を更に含む請求項17のシステム。 請求項19 前記ロード/ストア演算のための前記アドレスを判定するための前記手段は、ポスト・インクリメント・アドレスを判定するための手段を更に含む請求項17のシステム。 請求項20 前の実行サイクルの間に第1の加算器により出力された前記ポスト・インクリメント・アドレスを、現在の実行サイクルの間に第2の加算器の入力に送るために手段を更に含む請求項19のシステム。
类似技术:
公开号 | 公开日 | 专利标题 US7533250B2|2009-05-12|Automatic operand load, modify and store EP1810130B1|2011-11-30|Methods and apparatus for branch prediction and processing of microprocessor instructions and the like JP5149311B2|2013-02-20|オン−デマンド・マルチ−スレッド・マルチメディア・プロセッサ US8832166B2|2014-09-09|Floating point multiplier circuit with optimized rounding calculation KR100325430B1|2002-02-25|상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법 EP1849095B1|2013-01-02|Low latency massive parallel data processing device JP4026753B2|2007-12-26|半導体集積回路 TWI222014B|2004-10-11|Method and apparatus for restoring registers after cancelling a multi-cycle instruction CN101965554B|2015-04-15|选择性地提交已执行指令的结果的系统和方法 US6832296B2|2004-12-14|Microprocessor with repeat prefetch instruction EP2270650B1|2014-04-16|Processor and control method for processor US7971042B2|2011-06-28|Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline JP3842474B2|2006-11-08|データ処理装置 JP2014093085A|2014-05-19|入力データ値に応じたfmaユニットにおける電力消費の低減 US9329900B2|2016-05-03|Hetergeneous processor apparatus and method KR102140061B1|2020-07-31|상이한 명령 세트 아키텍쳐들을 갖는 프로세서들 상에서의 운영 시스템의 실행 US9672046B2|2017-06-06|Apparatus and method for intelligently powering heterogeneous processor components EP3060983B1|2020-01-08|Bandwidth increase in branch prediction unit and level 1 instruction cache DE112013005338T5|2015-07-23|Vorrichtung und Verfahren für Beschleunigeraufruf mit geringer Latenz JP4986431B2|2012-07-25|プロセッサ JP2007328461A|2007-12-20|非対称マルチプロセッサ JP2017526996A|2017-09-14|プロセッサデバイス電力消費を管理するシステムおよび方法 JP5743245B2|2015-07-01|性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法 US20010010075A1|2001-07-26|Efficient handling of a large register file for context switching and function calls and returns EP1058185A1|2000-12-06|A multiply and accumulate apparatus and a method thereof
同族专利:
公开号 | 公开日 US20090228688A1|2009-09-10| TW200951806A|2009-12-16| CN101960422A|2011-01-26| EP2260382A1|2010-12-15| US8185721B2|2012-05-22| KR20100134005A|2010-12-22| WO2009111198A1|2009-09-11| KR101239272B1|2013-03-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-12-27| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121227 | 2013-01-16| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130115 | 2013-04-12| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130411 | 2013-04-19| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130418 | 2013-05-16| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130515 | 2013-06-12| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130611 | 2013-08-09| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130808 | 2013-08-16| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130815 | 2014-02-26| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140225 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|